home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Windows News 2010 Summer - Disc 1
/
WN_Ete2010_CD1.iso
/
Onglet5
/
Weezo
/
Weezo setup.exe
/
{code_appDir}
/
www
/
widgets
/
monitor.php
Wrap
PHP Script
|
2010-05-19
|
4KB
|
91 lines
<?php
/**
* UWA Monitoring Widget server-side script
*
* PHP version 5
*
* LICENSE: This source file is subject to version 3.0 of the PHP license
* that is available through the world-wide-web at the following URI:
* http://www.php.net/license/3_0.txt. If you did not receive a copy of
* the PHP License and are unable to obtain it through the web, please
* send a note to license@php.net so we can mail you a copy immediately.
*
* @category NA
* @package NA
* @author Nicolas Bruley / Peer 2 World <contact@weezo.net>
* @copyright 2005-2009 Nicolas Bruley / Peer 2 World
* @license http://www.php.net/license/3_0.txt PHP License 3.0
* @version CVS: $Id:$
* @link http://www.weezo.net
* @since File available since Release 1.0.8
*/
/**
* @desc return an array containing session data
*
* @param string $sessionFileName : session's filename
* @return array : session data
*/
function unserializeSession($sessionData){
$sess=array();
$data = preg_split('/([A-Za-z_][A-Za-z0-9_]*)\|/',$sessionData,-1, PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_NO_EMPTY);
for ($i=0;$i<count($data)/2;$i++) $sess[$data[$i*2]]=@unserialize($data[$i*2+1]);
return $sess;
}
// XML response header
cfAsyncHeader();
// Set language
if(isset($_GET['lng']) && cfMIssetVar('weezoLng'.substr($_GET['lng'],0,2))) cfGSetVar('language',substr($_GET['lng'],0,2));
// Incorrect monitorWidgetAccessCode
if(!cfGGetVar('monitorWidgetAccessCode') || ((!isset($_POST['monitorWidgetAccessCode']) || $_POST['monitorWidgetAccessCode']!=cfGGetVar('monitorWidgetAccessCode')) && (!isset($_GET['monitorWidgetAccessCode']) || $_GET['monitorWidgetAccessCode']!=cfGGetVar('monitorWidgetAccessCode')))) {
sleep(3);
echo cfAsyncXMLJSaction('setServerState("");setMessage("'.cfCaption('loginBadPassword').$_GET['monitorWidgetAccessCode'].'")');
//echo cfAsyncXMLJSaction('setServerState("");setMessage("'.cfCaption('loginBadPassword').'")');
die(cfAsyncFooter());
}
// Set server as started on web
echo cfAsyncXMLJSaction('setServerState("'.cfCaption('apacheStartedWeb').'")');
// Get connected users list
$sessions=glob(cfAppDataDir().'/sessiondata/sess_*');
$connected=array();
$nb=0;
// Browse sessions
foreach ($sessions as $completeFilename){
// Get session data
$file=basename($completeFilename);
if(cfGGetVar('sessionHandler')=='memory') $sess=unserializeSession(@cfMGetVar('weezoS'.substr($file,1),true));
else $sess=unserializeSession(file_get_contents($completeFilename));
// If session corresponds to a connected user, add it to $connected list
if(isset($sess['user']['name']) && !@$sess['user']['invisible']){
if(!isset($connected[$sess['user']['name']])) $connected[$sess['user']['name']]=array('nb'=>1, 'icon'=>'gfx/icons/'.$sess['user']['icon']);
else $connected[$sess['user']['name']]['nb']++;
$nb++;
}
// cfVarDump($sess['user']);
unset($sess);
}
// Number of connected users
echo cfAsyncXMLJSaction('setConnectedNb("'.cfCaption('mainNumberConnectedUsers',(int)$nb).'")');
// List of connected users, with (group)name, icon, and nb of connected users per group
$list='';
if($nb){
foreach ($connected as $name=>$value){
$list.=',Array("'.str_replace(',',';',cfUTF8Encode($name)).'",'.$value['nb'].',"'.$value['icon'].'")';
}
}
else $list=',';
echo cfAsyncXMLJSaction('setConnected(Array('.substr($list,1).'))');
// Next information request
echo cfAsyncXMLJSaction('setNextRefresh('.max(1,(int)cfGGetVar('monitorWidgetRefreshInterval')).')');
die(cfAsyncFooter());
?>